/*
    异步工作线程模块：客户端存在两种异步工作线程
    1. muduo库中客户端连接的异步循环线程EventLoopThread，用于处理网络IO事件
    2. 接收到消息推送后异步处理消息的工作线程池（消费者中的回调会被打包作为任务放入到线程池）
    这两个线程不是以连接为单元创建，而是共享给多个连接，所以单独封装
*/

#pragma once
#include "muduo/net/EventLoopThread.h"
#include "../common/threadpool.hpp"


namespace mq 
{
    // 异步工作线程
    class AsyncWorker
    {
    public:
        using AsyncWorkerPtr = std::shared_ptr<AsyncWorker>;

    public:
        muduo::net::EventLoopThread _loopthread;
        ThreadPool _threadpool;
    };
}